Configuring computing devices using a template

ABSTRACT

According to example implementations, computing devices are configured using a template. The template specifies at least one computing device property and backup control information relating to backing up data from the computing devices to a backup system. The computing devices are reconfigured in response to modification of the template.

BACKGROUND

A computing environment can include a number of computing devices.Examples of such computing devices include servers, such as data servers(which can be accessed by client devices to access data stored instorage subsystems accessible by the data servers), or other types ofservers.

Servers deployed in a computing environment are configured to allow theservers to perform their respective functions, such as to perform backupof certain data to a backup system. In some cases, servers can bemanually configured (such as for data backup) by information technology(IT) personnel or other users.

BRIEF DESCRIPTION OF THE DRAWINGS

Some embodiments are described with respect to the following figures:

FIG. 1 is a block diagram of an example computing environment thatincorporates some implementations;

FIG. 2 is a flow diagram of a server configuration process according tosome implementations;

FIG. 3 is a block diagram of an example arrangement that includes amanagement interface device and a configuration system according to someimplementations;

FIG. 4 is a block diagram of a server that is configurable using aserver template according to some implementations; and

FIG. 5 is a flow diagram of a process of a configuration systemaccording to some implementations.

DETAILED DESCRIPTION

Configuring a relatively large number of computing devices in acomputing environment can be time consuming, particularly if theconfiguring is performed manually. In some examples, configuring thecomputing devices can include configuring the computing devices toperform data backup operations (discussed further below). Manualconfiguration of computing devices can result in inconsistentconfiguration of the computing devices. Manual configuration can alsolead to mis-configuration of some of the computing devices.

In some implementations, the computing devices of a computingenvironment can include data servers, which can include backup agents toperform backup of data to a cloud-based backup system or other type ofbackup system. In other implementations, the computing devices caninclude other types of servers or other computing devices. Examples ofother computing devices include any or some combination of thefollowing: desktop computers, notebook computers, tablet computers,smart phones, personal digital assistants (PDAs), and so forth.

In the ensuing discussion, reference is made to configuration of serversusing techniques or mechanisms according to some implementations.However, in other examples, similar configuration techniques ormechanisms can be applied to other types of computing devices.

In accordance with some implementations, to improve efficiency inconfiguring servers, a server template can be used. The server templateis a container that includes configuration information that can beretrieved by multiple servers for configuring the servers. Note thatconfiguring a server can refer to configuring machine-readableinstructions (software and/or firmware) of the server. As discussedfurther below, the server template includes (1) at least one serverproperty, and (2) backup control information (which can specify a backuppolicy and/or backup rule). In some examples, the backup controlinformation can be part of a backup template that is included in theserver template.

The backup control information is related to performing backup ofselected data of the servers to a backup system. The backup of selecteddata is performed according to the backup control information. Backingup data of a server to the backup system can involve copying the datafrom the server to the backup system. Alternatively, backing up data caninvolve archiving the data of the server, where the archived data ismoved from the server to the backup system.

In some examples, the backup system can reside in a cloud; such a backupsystem is referred to as a cloud-based backup system. A “cloud” canrefer to any arrangement of one or multiple systems that can storebackup data on behalf of the servers, and where the one or multiplesystems are accessible over a network. The cloud-based backup system canbe available over a public network, such as the Internet, or over aninternal network of an enterprise (business concern, educationalorganization, government agency, etc.).

The server template can be used to automatically configure multipleservers such that individual configuration of the servers does not haveto be performed. By using the server template, the servers associatedwith the server template form a group of servers having certain aspectsthat are configured identically with each other, based on the servertemplate.

In some cases, other servers not associated with server template can beconfigured differently. For example, the other servers can beindividually configured using different server configurationinformation.

In other examples, multiple server templates can be provided forconfiguring respective different groups of servers. For example, a firstserver template can be used to configure a first group of servers, asecond, different server template can be used to configure a second,different group of servers, and so forth.

Although reference is made to a server template used to configureservers, it is noted that the template can be a more general templatethat can be used to configure other types of computing devices. Suchtemplate can include at least one computing device property and backupcontrol information.

A server property can be a property that describes an operationalfeature or aspect of a server. This is a property that controls how theserver operates or behaves. An example of a server property can includecontact information (e.g. information identifying a primary technicalcontact and/or secondary technical contact), which identifies personnelto contact in case of a fault, failure, or other issue. Also, anotherexample of a server property can include an auto-upgrade setting, whichcan specify one or multiple criteria associated with automaticallyupgrading the server, including the upgrade of machine-readableinstructions (e.g. software and/or firmware) of the server. Anotherexample server property includes a subscription property, which relatesto options useable by a server to set the backup control information.Although various example server properties are listed, it is noted thatother or additional server properties can be used in other examples.

Backup control information can include a backup policy and/or a backuprule associated with backing up data from the server to a backup system(such as a cloud-based backup system). For example, a backup policy caninclude a schedule that controls when data is backed up from the serverto the backup system. As another example, a backup policy can include aretention policy that specifies one or multiple retention criteriaassociated with retaining backup data. An example retention criterioncan be an age-based criterion that specifies an age past which backupdata is to be deleted.

A backup rule can identify data that is to be backed up, and furtherdata that is not to be backed up. For example, the backup rule canspecify the types of data that are to be backed up, locations of datathat are to be backed up, and so forth.

FIG. 1 is a block diagram of an example computing environment 100 thatincludes servers 102. Each server 102 has a storage subsystem 104 tostore data. Although the storage subsystem 104 is depicted as being partof the server 102, in other examples, the storage subsystem 104 can beexternal of the server 102, but is accessible by the server 102.

Each server 102 also includes a backup agent 120 that is able to performbackup of data from the corresponding storage subsystem 104 to a backupsystem 116. The server 102 (and more specifically the backup agent 120in the server 102) can be configured based on content in a serverconfiguration database 105 in a management system 112. The serverconfiguration database 105 can include multiple instances ofconfiguration data for respective servers. In the example of FIG. 1, aconfiguration data instance for a first server (server 1) is shown.Similar configuration data instances for other servers can be includedin the server configuration database 105.

The configuration data instance for server 1 (which can be one of theservers 102 of FIG. 1) includes server property(ies) 106 and backupcontrol information 108. In accordance with some implementations, theserver property(ies) 106 and backup control information 108 for a server102 can be set using a server template 110, which can also be stored atthe configuration system 112. For improved efficiency, the serverproperties 106 and backup control information 108 for multiple servers102 associated with the server template 110 can be set using the servertemplate 110. As noted above, the server template 110 can include atleast one server property (including, for example, contact information,an auto-upgrade setting, a subscription property, and so forth, asdiscussed above) and backup control information. In some examples, thebackup control information can be part of a backup template that isincluded in the server template.

Other servers 102 can be configured individually rather than based onthe server template 112. The server properties 106 and backup controlinformation 108 of such other servers can be set individually, such asby manual configuration.

In some implementations, configuring a server 102 is accomplished bysetting the configuration data (the server property(ies) 106 and backupcontrol information 108) associated with the server 102 at theconfiguration system 112, either based on the server template 110 orbased on individual configuration. The server 102 (and morespecifically, the backup agent 120) can access its configuration byretrieving the configuration data at the configuration system 112.

For example, the server 102 can poll (such as periodically or inresponse to other events) the configuration system 112 for the currentconfiguration data for the server 102. In such examples, each server 102does not have to persistently store the configuration data, but caninstead access the configuration data at the configuration system 112each time the server 102 has to perform an operation that is controlledby the configuration data.

In alternative implementations, the configuration data (the serverproperty(ies) 106 and backup control information 108) of a server 102can be persistently stored at the server 102 (instead of at theconfiguration system 112). In such alternative implementations,configuring a server 102 involves setting the server property(ies) 106and backup control information 108 at the server 102 using the servertemplate 110 or using an individual configuration.

The servers 102 are able to communicate with the configuration system112 over a network 114, which can be a public network (e.g. Internet) orcan be a private network (such as a network in an enterprise). Backupdata from the servers 102 can also be communicated to the backup system116 over the network 114.

The backup system 116 can be a cloud-based backup system or other typeof backup system. The backup system 116 includes a backup storagesubsystem 117 that can be used to store backup data. The backup storagesubsystem 117 can be provided at one location, or can be distributedacross multiple locations.

Data of a storage subsystem 104 in a server 102 can be backed up to thebackup system 116 according to the backup control information 108. Thedata to be backed up can be copied or moved over the network 114 to thebackup system 116.

In addition to enhancing efficiency in the initial configuration ofservers 102 based on the server template 110, use of the server template110 also allows for more efficient reconfiguration of the servers 102.Server reconfiguration can be accomplished by modifying the servertemplate 110. In response to modifying the server template 110, whichcan include a change of a server property and/or the backup controlinformation of the server template 110, automatic reconfiguration of theservers 102 can be performed.

A server 102 can either be associated with the server template 110 ornot associated with the server template 110. Provisioning information109 can be included in the configuration data for each server 102 toindicate whether or not the server 102 is associated with the servertemplate 110. If the server 102 is associated with the server template110, then the server 102 is configured based on the server template 110.On the other hand, if the server 102 is not associated with the servertemplate 110, then the server 102 is not configured based on the servertemplate 110, but instead is configured individually. The provisioninginformation 109 can include (1) an association indication that indicatesthat the server 102 is associated with the server template 110, and (2)template identification information identifying the server template 110(from among multiple server templates) to use.

If the association indication is provided with the provisioninginformation 109, which indicates that the server 102 is to be configuredusing the corresponding server template 110, then the configurationsystem 112 accesses the server template 110 (identified in theprovisioning information 109) to perform configuration of the server102.

In some implementations, it is possible for a server 102 to disassociatefrom the server template 110, such as by not including the associationindication in the provisioning information 109. In this case, theconfiguration system 112 does not configure the server 102 with anyserver template. A server 102 can be disassociated from the servertemplate 110 in those situations where it is determined that the server102 should have a configuration that is different from the configurationspecified by the server template 110.

In other examples, the server 102 can disassociate from a first servertemplate, and then associate with a second, different server template toconfigure the server 102 according to the second server template.

FIG. 2 is a flow diagram of a server configuration process according tosome implementations. The process of FIG. 2 can be performed by theconfiguration system 112. The server configuration process configures(at 202) the servers 102 using the server template 110. Configuring theservers 102 includes setting the server property(ies) 106 and/or backupcontrol information 108 associated with each server 102 based on therespective at least one server property and/or backup controlinformation in the server template 110. As noted above, in someimplementations, the server property(ies) 106 and backup controlinformation 108 for a given server can be included in the serverconfiguration database 105 at the configuration system 112. Inalternative implementations, the server property(ies) 106 and backupcontrol information 108 for the given server 102 can be persistentlystored at the given server 102.

In response to a change of the server template 110 (which can include achange of the at least one server property and/or backup controlinformation in the server template 110), the servers 102 can bereconfigured (at 204) according to the changed server template 110.

By using techniques or mechanisms according to some implementations,more efficient configuration/reconfiguration of servers 102 can beperformed. Multiple servers can be configured using the server template110 in a more timely and consistent fashion. Additionally, by being ableto reconfigure servers 102 using a modified server template 110, serverconfiguration changes can be easily made across multiple servers 102.

FIG. 3 depicts an example arrangement in which a management interfacedevice 302 can be used for creating the server template 110 at theconfiguration system 112. The management interface device 302 includes amanagement user interface 304 displayed in a display 306 of the clientdevice 302. The management interface device 302 can include a computer(e.g. notebook computer, desktop computer, tablet computer), a smartphone, a PDA, or other electronic device.

The management user interface 304 can be a web-based user interfaceprovided by a web server module 308 of the configuration system 112. Forexample, the management interface device 102 can access the web servermodule 308 to download a web page to provide the management userinterface 304. In other examples, a different type of user interface 304can be employed, such as a command line interface (in which commands aresubmitted as command lines).

The management user interface 304 can include various control elementsthat are selectable by a user of the management interface device 302 tocreate the server template 110. The user can use the control elements(e.g. control menu items, text boxes to enter text data, etc.) of theuser interface 304 to specify server properties and backup controlinformation to be included in the server template 110.

The configuration system 112 further includes a template configurationmodule 310, which is able to receive commands and other inputinformation from the management interface device 302 based on userinput. In response to the commands and other input information from themanagement interface device 302, the template configuration module 310builds the server template 110. The server template 110 can be stored ina storage medium 312 of the configuration system 112. The managementinterface device 302 also allows a user to designate a group of servers102 that are to be configured with the server template 110. For example,the user can use a command line interface to designate the servers 102that are associated with the server template 110. Alternatively, themanagement user interface 304 can include fields for the user to selectservers 102. In response to the user selection, the configuration system112 can provision the selected servers 102 to use the server template110 for configuration of the servers 102 in the group.

The configuration system 112 also includes configuration code 320 to setrespective configuration data (of servers 102 associated with the servertemplate 110) based on the server template 110.

In addition, the configuration system 112 includes a database servermodule 322 that is able to retrieve configuration data from the serverconfiguration database 105 in response to a request from a server 102.The server configuration database 105 can be stored in the storagemedium 312.

The template configuration module 310, web server module 308,configuration code 320, and database server module 322 can beimplemented as machine-readable instructions executable on one ormultiple processors 314 in the configuration system 112. Theconfiguration system 112 further includes a network interface 315 toallow the configuration system 112 to communicate over the network 114.

The management interface device 302 can be used by a user to modify apreviously created server template 110. Modifying the server template110 at the configuration system 112 can trigger a reconfiguration of theservers 102 associated with the server template 110. The reconfigurationof the servers 102 can be accomplished by the configuration code 320updating the respective configuration data in the server configurationdatabase 105 using the modified server template 110.

The management interface device 302 can also be used by a user toassociate or disassociate a given server 102 with a server template. Forexample, the user can submit a command in a command line interface orother user interface at the management interface device 302 to specifywhether or not the given server 102 is to be associated or notassociated with the server template. Associating the given server 102can be indicated with an association indication in the provisioninginformation 109 (FIG. 1).

FIG. 4 is a block diagram of an example arrangement including a server102 and the configuration system 112. The server 102 includes the backupagent 120, which can be implemented as machine-readable instructionsexecutable on one or multiple processors 404 in the server 102. Thebackup agent 120 is used to perform backup of data stored or managed bythe server 102 to the backup system 116 (FIG. 1). The server 102includes a network interface 410 to allow the server 102 to communicateover the network 114. The server 102 also includes a storage medium 406accessible by the processor(s) 404.

In operation, the backup agent 120 is able to submit a request to theconfiguration system 112 to access the respective configuration data inthe server configuration database 105. The backup agent 120 is able tooperate according to the configuration defined by the retrieved serverproperty(ies) 106 and backup control information 108. FIG. 5 is a flowdiagram of an example process performed by the configuration system 112of FIG. 3. The configuration system 112 receives (at 502) inputinformation from the management interface device 302 (FIG. 3) thatrelates to content of the server template 110. In response to thereceived input information, the configuration system 112 creates (at504) the server template 110.

The configuration system 112 further provisions (at 506) selectedservers 102 to use the server template 110 for configuration of theservers 102. As noted above, the servers selected for configuration bythe server template 110 can be specified at the management interfacedevice 102 (such as in a command line interface or other userinterface). Provisioning the selected servers can involve setting theassociation indication in the provisioning information 109 (FIG. 1) foreach of the selected servers 102 to associate each server 102 with theserver template 110.

Subsequently, the configuration system 112 receives (at 508) furtherinput information from the user interface 304 relating to modificationof the server template 110. Based on the further input information, theconfiguration system 112 modifies (at 510) the server template 110. Theconfiguration system 112 next triggers (at 512) reconfiguration of theservers 102 associated with the server template 110 in response to themodified server template 110.

An issue associated with performing reconfiguration of the server 102may be that there can be a data backup operation that is ongoing. Inresponse to notification of modification of the server template 110, theconfiguration code 320 in the configuration system 112 (FIG. 3) candetermine whether the modified configuration information of the servertemplate 110 would affect an ongoing operation of a server 102. If not,the modified property (server property and/or backup controlinformation) of the server template 110 can be applied immediately toset the respective configuration data in the server configurationdatabase 105, without waiting for the ongoing operation to complete. Forexample, modifying a server property of the server template 110 wouldnot affect an ongoing operation of the server 102. However, modifyingthe backup control information of the server template 110 may affect anongoing operation of the server 102.

If the modified property at the server template 110 would affect anongoing operation, the configuration code 320 checks for the type ofchange (e.g. modified backup control information) that is made to theserver template 110. The following are the possible change status thatcan be associated with the backup control information of the servertemplate 110: no change (which indicates that the backup controlinformation of the server template 110 has not been changed), only thebackup policy has changed, only the backup rule has changed, or both thebackup policy and backup rule have changed.

To change a backup policy at the server 102, the configuration code 320first waits for a current backup operation (or multiple current backupoperations) to complete. After completion of the backup operation(s),the configuration code 320 applies the change to the respectiveconfiguration data in the server configuration database 105.

To change a backup rule at the server 102, the configuration code 320also waits for a current backup operation (or multiple current backupoperations) to complete. After completion of the backup operation(s),the configuration code 320 applies the change of the backup rule to therespective configuration data in the server configuration database 105.Changing the backup rule involves deleting the backup rule, andgenerating a new backup rule, which is a more complex process thanchanging the backup policy, which can be accomplished by modifying aparameter or multiple parameters (e.g. an age associated with a dataretention policy) of the backup policy.

As further depicted in FIG. 5, the configuration system 112 can alsoreceive (at 514) additional input from the user interface 304 specifyingdisassociation of a particular server 102 from the server template 110.In response to the additional input information, the configurationsystem 112 updates (at 516) the provisioning information 109 of theparticular server 102 to disassociate the particular server 102 from theserver template 110.

Various modules described above, including the backup agent 120,template configuration module 310, web server module 308, andconfiguration code 320, and database server module 322 of FIG. 3 or 4,can be implemented as machine-readable instructions executed on one ormultiple processors (such as 314 or 404 in FIG. 3 or 4). A processor caninclude a microprocessor, microcontroller, processor module orsubsystem, programmable integrated circuit, programmable gate array, oranother control or computing device.

Data and instructions are stored in respective storage devices, whichare implemented as one or multiple computer-readable or machine-readablestorage media. The storage media include different forms of memoryincluding semiconductor memory devices such as dynamic or static randomaccess memories (DRAMs or SRAMs), erasable and programmable read-onlymemories (EPROMs), electrically erasable and programmable read-onlymemories (EEPROMs) and flash memories; magnetic disks such as fixed,floppy and removable disks; other magnetic media including tape; opticalmedia such as compact disks (CDs) or digital video disks (DVDs); orother types of storage devices. Note that the instructions discussedabove can be provided on one computer-readable or machine-readablestorage medium, or alternatively, can be provided on multiplecomputer-readable or machine-readable storage media distributed in alarge system having possibly plural nodes. Such computer-readable ormachine-readable storage medium or media is (are) considered to be partof an article (or article of manufacture). An article or article ofmanufacture can refer to any manufactured single component or multiplecomponents. The storage medium or media can be located either in themachine running the machine-readable instructions, or located at aremote site from which machine-readable instructions can be downloadedover a network for execution.

In the foregoing description, numerous details are set forth to providean understanding of the subject disclosed herein. However,implementations may be practiced without some or all of these details.Other implementations may include modifications and variations from thedetails discussed above. It is intended that the appended claims coversuch modifications and variations.

What is claimed is:
 1. A method comprising: configuring a plurality ofcomputing devices using a template that specifies at least one computingdevice property and backup control information relating to backing updata from the computing devices to a backup system; and responsive to achange of the template, reconfiguring the plurality of computing devicesaccording to the changed template.
 2. The method of claim 1, whereinconfiguring the computing devices comprises computing agents in thecomputing devices that perform backup operations to the backup system.3. The method of claim 1, further comprising: setting provisioninginformation associated with a particular one of the computing devices,the provisioning information indicating that configuration of theparticular computing device is based on the template.
 4. The method ofclaim 3, wherein the provisioning information includes an associationindication to indicate that the particular computing device is to beconfigured using the template, and wherein the provisioning informationis without the association indication to indicate that the particularcomputing device is not to be configured using the template.
 5. Themethod of claim 3, further comprising: receiving input to disassociatethe particular computing device from the template.
 6. The method ofclaim 1, wherein the reconfiguring comprises: determining whether thechange of the template would affect an ongoing operation of a particularcomputing device.
 7. The method of claim 6, wherein the reconfiguringcomprises: in response to determining that the change of the templatewould not affect the ongoing operation, applying the changed template tothe particular computing device without waiting for the ongoingoperation to complete.
 8. The method of claim 6, wherein thereconfiguring comprises: in response to determining that the change ofthe template would affect the ongoing operation, waiting for the ongoingoperation to complete and applying the changed template to theparticular computing device after the ongoing operation completes.
 9. Anarticle comprising at least one machine-readable storage medium storinginstructions that upon execution cause a system to: receive inputinformation that relates to content of a template useable to configurecomputing devices, the template specifying at least one computing deviceproperty and backup control information relating to backing up data fromthe computing devices to a backup system; create the template based onthe received input information; configure the computing devices based onthe template; receive further input information relating to modificationof the template; modify the template based on the received further inputinformation; and trigger reconfiguration of the computing devices inresponse to the modified template.
 10. The article of claim 9, whereinconfiguring the computing devices comprises setting the at least onecomputing device property and the backup control information of each ofthe computing devices in a configuration system.
 11. The article ofclaim 9, wherein the instructions upon execution cause the system tofurther update provisioning information for the computing devices toassociate the computing devices with the template.
 12. The article ofclaim 9, wherein the instructions upon execution cause the system tofurther: receive additional information specifying disassociation of aparticular one of the computing devices from the template; and updateprovisioning information for the particular computing device todisassociate the particular computing device from the template.
 13. Thearticle of claim 9, wherein receiving the input information andreceiving the further input information are from a management interfacedevice.
 14. A configuration system comprising: at least one processor;and configuration code executable on the at least one processor to:configure, using a template, computing devices, wherein the templatespecifies at least one computing device property and backup controlinformation relating to backing up data from each of the computingdevices to a backup system; and reconfigure the computing devices inresponse to modification of the template.
 15. The configuration systemof claim 14, wherein the backup control information includes a backuppolicy that specifies at least one selected from among: a schedule forperforming backup, and a retention policy for backup data.
 16. Theconfiguration system of claim 14, wherein the backup control informationincludes a backup rule identifying a type of data to backup.
 17. Theconfiguration system of claim 14, further comprising a configurationdatabase to store configuration data for the computing devices, whereinthe configuration database includes configuration data instances for therespective computing devices, and wherein each of the configuration datainstances includes at least one computing device property and backupcontrol information, wherein the configuration code is configured to setthe configuration data instances based on the template.
 18. Theconfiguration system of claim 17, further comprising a database servermodule to access the configuration data instances in response torequests from the computing devices.
 19. The configuration system ofclaim 14, wherein the computing devices include data servers havingbackup agents to back up data from the data servers to a backup system.